
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.brain.gest.view.mbean;

import com.brain.core.common.UtilCore;
import com.brain.core.dto.ParametroDto;
import com.brain.core.exception.DAOException;
import com.brain.core.view.mbean.*;
import com.brain.core.manager.RecursosManager;
import com.brain.desa.dto.EvaluacionDesempenoArbolDto;
import com.brain.desa.manager.EvaluacionDesempenoArbolManager;
import com.brain.gest.dto.CompetenciaDto;
import com.brain.gest.dto.DesarrolloDto;
import com.brain.gest.dto.GestionTalentoDto;
import com.brain.gest.dto.GestionTalentoPersonaDto;
import com.brain.gest.dto.PuestoCriticoDto;
import com.brain.gest.manager.CompetenciaManager;
import com.brain.gest.manager.DesarrolloManager;
import com.brain.gest.manager.GestionTalentoManager;
import com.brain.gest.manager.GestionTalentoPersonaManager;
import com.brain.gest.manager.PuestoCriticoManager;
import com.brain.gest.view.util.ConstantesGest;
import com.brain.sgc.dto.PersonaDto;
import com.brain.sgc.dto.PuestoDto;
import com.brain.sgc.manager.PersonaManager;
import com.brain.sgc.view.util.ConstantesSgc;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;
import javax.faces.event.ActionEvent;
import javax.persistence.Transient;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

@Controller("gestionTalentoMBean")
@Scope("session")
public class GestionTalentoMBean extends GenericMBean implements Serializable {

    private static Logger logger = Logger.getLogger(GestionTalentoMBean.class);
    @Resource
    private GestionTalentoManager manager;
    @Resource
    private RecursosManager recursosManager;
    @Resource
    private PersonaManager personaManager;
    @Resource
    private GestionTalentoPersonaManager talentoPersonaManager;
    @Resource
    private PuestoCriticoManager puestoCriticoManager;
    @Resource
    private CompetenciaManager competenciaManager;
    @Resource
    private EvaluacionDesempenoArbolManager evaluacionDesempenoArbolManager;
    @Resource
    private DesarrolloManager desarrolloManager;
    private List<GestionTalentoDto> lista;
    
    private List<GestionTalentoPersonaDto> listaReporte;
    private List<PuestoCriticoDto> listaReportePuestoCritico;
    private List<DesarrolloDto> listaReporteDesarrollo;
    
    private List<PersonaDto> listaPersonaCalificada;
    private List<GestionTalentoPersonaDto> listaPersonaSeleccionada;
    private List<GestionTalentoPersonaDto> listaPersonaDesarrollo;
    private List<PuestoCriticoDto> listaPuestoCritico;
    private List<EvaluacionDesempenoArbolDto> listaEvaluacionDesempenoArbolDto;
    private List<DesarrolloDto> listaDesarrolloDto;
    private List<ParametroDto> listaDesarrolloEstado;
    private List<CompetenciaDto> listaCompetenciaDto;
    private GestionTalentoDto dto;
    private GestionTalentoDto dtoFiltro;
    private PersonaDto personaDto;
    private GestionTalentoDto[] selectedPersonaCalifi;
    private GestionTalentoPersonaDto personaTalentoDto;
    private String keyTitulo = "menu.gestion.talentos.panel";
    @Autowired
    private ApplicationMBean applicationMBean;
    @Autowired
    private SessionMBean sessionMBean;
    private PersonaDto[] selectedPersona;
    private PuestoCriticoDto puestoCriticoDto;
    private PuestoDto puestoDto;
    private DesarrolloDto desarrolloDto;
    @Transient
    private Boolean deshabilitarBotones;
    @Transient
    private int cuadranteI;
    @Transient
    private int cuadranteII;
    @Transient
    private int cuadranteIII;
    @Transient
    private int cuadranteIV;
    private List<Cuadrantes> listCuadrantes;
    private Date fechaActual;

    public GestionTalentoMBean() {
        this.dtoFiltro = new GestionTalentoDto();
    }

    public String iniciar() {
        this.dto = null;
        this.lista = null;
        this.dtoFiltro = new GestionTalentoDto();
        this.dtoFiltro.setEstado(Boolean.TRUE);
        return ConstantesGest.UrlNavegacion.URL_LISTA_GESTION_TALENTO;
    }

    public String nuevo() {
        sessionMBean.setAccion(ConstantesGest.Formulario.NUEVO);
        sessionMBean.setTitulo(recursosManager.construirTitulo(keyTitulo, sessionMBean.getAccion()));
        this.lista = new ArrayList<GestionTalentoDto>();
        this.dto = new GestionTalentoDto();
        this.dto.setEstado(Boolean.TRUE);
        this.dto.setProceso(ConstantesGest.Parametro.TALENTO_ESTADO_PROCESO_ACTIVO);
        this.dto.setAnio(UtilCore.Fecha.obtenerAnioActualString());
        this.listaPersonaSeleccionada = null;
        return ConstantesGest.UrlNavegacion.URL_GESTION_TALENTO;
    }

    public String editar() {
        sessionMBean.setAccion(ConstantesGest.Formulario.EDITAR);
        sessionMBean.setTitulo(recursosManager.construirTitulo(keyTitulo, sessionMBean.getAccion()));
        obtenerListaPersonaSeleccionada();
        this.desarrolloDto = new DesarrolloDto();
        this.personaTalentoDto = new GestionTalentoPersonaDto();
        return ConstantesGest.UrlNavegacion.URL_GESTION_TALENTO;
    }

    public String ver() {
        sessionMBean.setAccion(ConstantesGest.Formulario.VER);
        sessionMBean.setTitulo(recursosManager.construirTitulo(keyTitulo, sessionMBean.getAccion()));
        //ApplicationHelper.cargarPropietarios(ConstantesGest.Entidad.REQUERIMIENTO, this.dto.getId());
        this.obtenerListaPersonaSeleccionada();
        return ConstantesGest.UrlNavegacion.URL_GESTION_TALENTO;
    }
    
    public String reporteGestionTalento(){
        this.listaReporteTalento(this.dto);
        return ConstantesGest.UrlNavegacion.URL_LISTA_REPORTE; 
    }
    public void listaReporteTalento(GestionTalentoDto gtDto){
        try {
              
                this.listaReporte = this.talentoPersonaManager.obtenerListaGestionTalentoReporte(gtDto);
                for(GestionTalentoPersonaDto persTalRep:  this.listaReporte){
                    if(this.puestoCriticoManager.obtenerPuestosCriticos(persTalRep).size()>0){
                        persTalRep.setListaPuestosCriticos(this.puestoCriticoManager.obtenerPuestosCriticos(persTalRep));

                        for(PuestoCriticoDto puCri: persTalRep.getListaPuestosCriticos()){
                            if(this.desarrolloManager.obtenerListaDesarrollo(puCri).size()>0){
                                puCri.setListaDesarrollo(this.desarrolloManager.obtenerListaDesarrollo(puCri));
                            }
                        }
                    }
                }
                
               
        } catch (DAOException ex) {
                logger.error("ERROR DE SISTEMA", ex);
                showError(ex.getMessage());
            }
    }
    public void buscar(ActionEvent ae) {

        try {
            this.lista = this.manager.obtenerTalento(this.dtoFiltro);
        } catch (DAOException ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }

    }

    public String guardar() {
        try {
            GestionTalentoDto dtoAuxGest = this.dto;
            this.manager.guardar(this.dto);
            if (this.dto != null) {
                this.dto = this.manager.obtenerPorId(this.dto.getId());
                return this.editar();
            } else {
                this.dto = dtoAuxGest;
            }
        } catch (DAOException ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
        return "";
    }

    public String retroceder() {
        buscar(null);
        sessionMBean.setAccion(ConstantesGest.Formulario.LISTA);
        sessionMBean().setTitulo(recursosManager.construirTitulo(keyTitulo, sessionMBean().getAccion()));
        return ConstantesGest.UrlNavegacion.URL_LISTA_GESTION_TALENTO;
    }

    public void cargarPopupPersonasCalificadas() {
        try {
            this.selectedPersona = null;
            this.listaPersonaCalificada = this.personaManager.obtenerPersonaCalificada();
        } catch (DAOException ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
    }

    public void cargarPopupPuestoCritico() {
        this.obtenerListaPuestosCriticos();
    }

    public void cargarPopupDesarrollo() {
        this.desarrolloDto = new DesarrolloDto();   
        this.obtenerListaPuestoUnidadCompetencia();
        this.obtenerListaPersonaUnidadCompetencia();
        this.obtenerListaDesarrollo();
        this.obtenerListaPersonaDesarrollo();
    }

    public void agregarDesarrollo() {

        try {
            if(this.desarrolloDto.getFechaInicio() != null && this.desarrolloDto.getFechaFin() != null){
                if (UtilCore.Fecha.diferenciaDiasFechas(this.desarrolloDto.getFechaFin(), this.desarrolloDto.getFechaInicio()) > 0) {
                        showWarning(UtilCore.Internacionalizacion.getMensajeInternacional("gestion.talento.desarrollo.mensaje.error_fechas") + " " + this.desarrolloDto.getDescripcion());
                   }else {
                    this.desarrolloDto.setPuestoCriticoDto(puestoCriticoDto);
                    this.desarrolloDto.setEstadoDto(new ParametroDto(ConstantesGest.Parametro.TALENTO_DESARROLLO_ESTADO_ACTIVO));
                    UtilCore.General.toUpperCaseDto(this.desarrolloDto);
                    this.desarrolloManager.nuevo(this.desarrolloDto);
                    this.obtenerListaDesarrollo();
                   } 
            }   
        } catch (Exception ex) {
            logger.error("ERROR DE SISTEMA", ex);
        }
        this.desarrolloDto = null;
        this.desarrolloDto = new DesarrolloDto();
    }

    public void agregarPuestoCritico() {
        try {
            PuestoCriticoDto puestoCrDto = new PuestoCriticoDto();
            puestoCrDto.setUsuarioCreacion(sessionMBean.getSessionUsuarioDto().getId());
            puestoCrDto.setFechaCreacion(UtilCore.Fecha.obtenerFechaActualDate());
            puestoCrDto.setTerminalCreacion(sessionMBean.getSessionTerminal());
            puestoCrDto.setEstado(Boolean.TRUE);
            puestoCrDto.setPuestoCriticoDto(this.puestoDto);
            puestoCrDto.setPersonaTalentoDto(this.personaTalentoDto);
            this.puestoCriticoManager.nuevo(puestoCrDto);
            obtenerListaPuestosCriticos();
        } catch (Exception ex) {
            logger.error("ERROR DE SISTEMA", ex);
        }
        this.puestoDto = null;
    }

    public void agregarPersonaCalificada() {
        GestionTalentoPersonaDto dtoPersonaSelec = null;
        PersonaDto dtoPersona = null;

        for (PersonaDto x : selectedPersona) {
            try {
                dtoPersonaSelec = new GestionTalentoPersonaDto();
                dtoPersonaSelec.setPersonaDto(x);
                dtoPersonaSelec.setEvaluacionCmpetencia(x.getEvCompetencia());
                dtoPersonaSelec.setEvaluacionDesempeno(x.getEvDesempeno());
                dtoPersonaSelec.setPuestodto(x.getPuestoDto());
                dtoPersonaSelec.setAnio(UtilCore.Fecha.obtenerFechaActualLatino());
                dtoPersonaSelec.setEstado(ConstantesGest.Parametro.PERSONA_TALENTO_ESTADO_ACTIVO);
                dtoPersonaSelec.setPromedio(x.getPromedioFinal());
                dtoPersonaSelec.setCuadrante(x.getCuadrante());
                dtoPersonaSelec.setGestionTalentoDto(dto);
                dtoPersonaSelec.setEvDesempenoId(x.getEvDesempenoDto());
                dtoPersonaSelec.setEvCompetenciaId(x.getEvCompetenciaDto());

                this.talentoPersonaManager.nuevo(dtoPersonaSelec);
                //SE ACTUALIZAN LOS ESTADOS DE EV.DESEMP Y EV.COMPE MEDIANTE TRIGgER

                obtenerListaPersonaSeleccionada();

            } catch (Exception ex) {
                logger.error("ERROR DE SISTEMA", ex);
                showError(ex.getMessage());
            }
        }
    }

    public void eliminarPersonaCalificada() {
        try {
            List<PuestoCriticoDto> TotalPuestoCri = this.puestoCriticoManager.obtenerPuestosCriticos(this.personaTalentoDto);
            if (TotalPuestoCri.size() == 0L) {
                if (this.personaTalentoDto.getId() != null) {
                    this.talentoPersonaManager.eliminar(this.personaTalentoDto);
                    obtenerListaPersonaSeleccionada();
                }
            } else {
                showWarning(UtilCore.Internacionalizacion.getMensajeInternacional("form.general.mensaje.gestion.talento.puesto.critico"));
            }
        } catch (Exception ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
    }

    public void eliminarDesarrollo() {
        try {
            if (this.desarrolloDto.getId() != null) {
                this.desarrolloManager.eliminar(this.desarrolloDto);
            }
            obtenerListaDesarrollo();
        } catch (Exception ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
    }

    public void eliminarPuestoCritico() {
        try {
            if (this.puestoCriticoDto.getId() != null) {
                this.puestoCriticoManager.eliminar(this.puestoCriticoDto);
            }
            obtenerListaPuestosCriticos();
        } catch (Exception ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
        /* try {
         if (this.responsableManager.obtenerCantidadRespPorMiemComite(this.miembroComiteDto) > 0) {
         showWarning(UtilCore.Internacionalizacion.getMensajeInternacional("convocatoria.mensaje.eliminacion.miem_comite"));
         } else {
         this.miemComiteManager.eliminar(this.miembroComiteDto);
         this.recuperarDtoPadre();
         }
         } catch (Exception ex) {
         logger.error("ERROR DE SISTEMA", ex);
         showError(ex.getMessage());
         }*/
    }

    protected void obtenerListaPersonaSeleccionada() {
        int contI = 0, contII = 0, contIII = 0, contIV = 0;
        this.deshabilitarBotones=true;
        try {
            this.listaPersonaSeleccionada = this.talentoPersonaManager.obtenerPersonaSeleccionada(this.dto);
            int listNum = this.listaPersonaSeleccionada.size();
            if(listNum!=0){
                for (GestionTalentoPersonaDto x : listaPersonaSeleccionada) {
                    try {

                        if (x.getCuadrante().equals("I")) {
                            contI++;
                        } else if (x.getCuadrante().equals("II")) {
                            contII++;
                        } else if (x.getCuadrante().equals("III")) {
                            contIII++;
                        } else {
                            contIV++;
                        }
                    } catch (Exception ex) {
                        logger.error("ERROR DE SISTEMA", ex);
                        showError(ex.getMessage());
                    }
                }
                this.cuadranteI = contI;
                this.cuadranteII = contII;
                this.cuadranteIII = contIII;
                this.cuadranteIV = contIV;
                double total = contI+contII+contIII+contIV;
                //
                listCuadrantes = new ArrayList<Cuadrantes>();
                Cuadrantes objCuadrante = new Cuadrantes();
                objCuadrante.setDescripcion("CUADRANTE I");
                objCuadrante.setCantidad(this.cuadranteI);
                objCuadrante.setPorcentaje(porcentajeCuadrante(total,this.cuadranteI));
                listCuadrantes.add(objCuadrante);

                objCuadrante = new Cuadrantes();
                objCuadrante.setDescripcion("CUADRANTE II");
                objCuadrante.setCantidad(this.cuadranteII);
                objCuadrante.setPorcentaje(porcentajeCuadrante(total,this.cuadranteII));
                listCuadrantes.add(objCuadrante);

                objCuadrante = new Cuadrantes();
                objCuadrante.setDescripcion("CUADRANTE III");
                objCuadrante.setCantidad(this.cuadranteIII);
                objCuadrante.setPorcentaje(porcentajeCuadrante(total,this.cuadranteIII));
                listCuadrantes.add(objCuadrante);

                objCuadrante = new Cuadrantes();
                objCuadrante.setDescripcion("CUADRANTE VI");
                objCuadrante.setCantidad(this.cuadranteIV);
                objCuadrante.setPorcentaje(porcentajeCuadrante(total,this.cuadranteIV));
                listCuadrantes.add(objCuadrante);
            }else{this.deshabilitarBotones=false;}
        } catch (DAOException ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
    }
    public double porcentajeCuadrante(double total, int valor){
        double finalV=(valor*100)/total;    
        return finalV;
    }

    protected void obtenerListaPuestosCriticos() {
        try {
            this.listaPuestoCritico = this.puestoCriticoManager.obtenerPuestosCriticos(this.personaTalentoDto);
        } catch (DAOException ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
    }

    protected void obtenerListaPuestoUnidadCompetencia() {
        try {
            this.listaCompetenciaDto = this.competenciaManager.obtenerCompetenciaPuestoCritico(this.puestoCriticoDto.getId());
        } catch (DAOException ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
    }

    protected void obtenerListaPersonaUnidadCompetencia() {
        try {
            this.listaEvaluacionDesempenoArbolDto = this.evaluacionDesempenoArbolManager.obtenerCompetenciaPuestoCritico(this.puestoCriticoDto.getPersonaTalentoDto().getEvDesempenoId().getId());
        } catch (DAOException ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
    }

    protected void obtenerListaDesarrollo() {
        try {
            this.listaDesarrolloDto = this.desarrolloManager.obtenerListaDesarrollo(this.puestoCriticoDto);
        } catch (DAOException ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
    }
    protected void obtenerListaPersonaDesarrollo() {
        try {
            this.listaPersonaDesarrollo = this.talentoPersonaManager.obtenerListaPorId(this.personaTalentoDto.getId());
        } catch (DAOException ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
    }

    public void confirmarLista() {
        try {
            int listNum = this.listaPersonaSeleccionada.size();
            if (listNum != 0) {
                for (GestionTalentoPersonaDto x : this.listaPersonaSeleccionada) {
                    this.dto = x.getGestionTalentoDto();
                    this.dto.setProceso(ConstantesGest.Parametro.TALENTO_ESTADO_PROCESADO_SELECCIONADO);
                    this.manager.editar(dto);

                    this.personaDto = x.getPersonaDto();
                    this.personaDto.setGt(ConstantesSgc.Parametro.PERSONA_ACTIVO);
                    this.personaManager.editar(this.personaDto);
                }
            } else {
                showWarning(UtilCore.Internacionalizacion.getMensajeInternacional("form.general.mensaje.gestion.talento.lista.empleado"));
            }
        } catch (DAOException ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
    }
    
    public void procesarEstadoDesarrollo() {
        try{
            this.desarrolloManager.editar(this.desarrolloDto);
            showMessage(UtilCore.Internacionalizacion.getMensajeInternacional("form.general.mensaje.transaccion.ok"));
            this.obtenerListaDesarrollo();
        } catch (Exception ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }
    }
    public void procesarcomentarioPersona(){
        try{
            UtilCore.General.toUpperCaseDto(this.talentoPersonaManager);
            this.talentoPersonaManager.editar(this.personaTalentoDto);
            showMessage(UtilCore.Internacionalizacion.getMensajeInternacional("form.general.mensaje.transaccion.ok"));
            this.obtenerListaDesarrollo();
        } catch (Exception ex) {
            logger.error("ERROR DE SISTEMA", ex);
            showError(ex.getMessage());
        }     
    }
    
    public void generarExcelPorTabla() {
        this.manager.generarExcelPorTabla(this.listaReporte);
    }
   
    
    public static Logger getLogger() {
        return logger;
    }

    public static void setLogger(Logger logger) {
        GestionTalentoMBean.logger = logger;
    }

    public GestionTalentoManager getManager() {
        return manager;
    }

    public void setManager(GestionTalentoManager manager) {
        this.manager = manager;
    }

    public RecursosManager getRecursosManager() {
        return recursosManager;
    }

    public void setRecursosManager(RecursosManager recursosManager) {
        this.recursosManager = recursosManager;
    }

    public List<GestionTalentoDto> getLista() {
        return lista;
    }

    public void setLista(List<GestionTalentoDto> lista) {
        this.lista = lista;
    }

    public List<PersonaDto> getListaPersonaCalificada() {
        return listaPersonaCalificada;
    }

    public void setListaPersonaCalificada(List<PersonaDto> listaPersonaCalificada) {
        this.listaPersonaCalificada = listaPersonaCalificada;
    }

    public List<GestionTalentoPersonaDto> getListaPersonaSeleccionada() {
        return listaPersonaSeleccionada;
    }

    public void setListaPersonaSeleccionada(List<GestionTalentoPersonaDto> listaPersonaSeleccionada) {
        this.listaPersonaSeleccionada = listaPersonaSeleccionada;
    }

    public List<PuestoCriticoDto> getListaPuestoCritico() {
        return listaPuestoCritico;
    }

    public void setListaPuestoCritico(List<PuestoCriticoDto> listaPuestoCritico) {
        this.listaPuestoCritico = listaPuestoCritico;
    }

    public GestionTalentoDto getDto() {
        return dto;
    }

    public void setDto(GestionTalentoDto dto) {
        this.dto = dto;
    }

    public GestionTalentoDto getDtoFiltro() {
        return dtoFiltro;
    }

    public void setDtoFiltro(GestionTalentoDto dtoFiltro) {
        this.dtoFiltro = dtoFiltro;
    }

    public PersonaDto getPersonaDto() {
        return personaDto;
    }

    public void setPersonaDto(PersonaDto personaDto) {
        this.personaDto = personaDto;
    }

    public GestionTalentoDto[] getSelectedPersonaCalifi() {
        return selectedPersonaCalifi;
    }

    public void setSelectedPersonaCalifi(GestionTalentoDto[] selectedPersonaCalifi) {
        this.selectedPersonaCalifi = selectedPersonaCalifi;
    }

    public GestionTalentoPersonaDto getPersonaTalentoDto() {
        return personaTalentoDto;
    }

    public void setPersonaTalentoDto(GestionTalentoPersonaDto personaTalentoDto) {
        this.personaTalentoDto = personaTalentoDto;
    }

    public String getKeyTitulo() {
        return keyTitulo;
    }

    public void setKeyTitulo(String keyTitulo) {
        this.keyTitulo = keyTitulo;
    }

    public ApplicationMBean getApplicationMBean() {
        return applicationMBean;
    }

    public void setApplicationMBean(ApplicationMBean applicationMBean) {
        this.applicationMBean = applicationMBean;
    }

    public SessionMBean getSessionMBean() {
        return sessionMBean;
    }

    public void setSessionMBean(SessionMBean sessionMBean) {
        this.sessionMBean = sessionMBean;
    }

    public PersonaDto[] getSelectedPersona() {
        return selectedPersona;
    }

    public void setSelectedPersona(PersonaDto[] selectedPersona) {
        this.selectedPersona = selectedPersona;
    }

    public PuestoCriticoDto getPuestoCriticoDto() {
        return puestoCriticoDto;
    }

    public void setPuestoCriticoDto(PuestoCriticoDto puestoCriticoDto) {
        this.puestoCriticoDto = puestoCriticoDto;
    }

    public PuestoDto getPuestoDto() {
        return puestoDto;
    }

    public void setPuestoDto(PuestoDto puestoDto) {
        this.puestoDto = puestoDto;
    }

    public List<CompetenciaDto> getListaCompetenciaDto() {
        return listaCompetenciaDto;
    }

    public void setListaCompetenciaDto(List<CompetenciaDto> listaCompetenciaDto) {
        this.listaCompetenciaDto = listaCompetenciaDto;
    }

    public List<EvaluacionDesempenoArbolDto> getListaEvaluacionDesempenoArbolDto() {
        return listaEvaluacionDesempenoArbolDto;
    }

    public void setListaEvaluacionDesempenoArbolDto(List<EvaluacionDesempenoArbolDto> listaEvaluacionDesempenoArbolDto) {
        this.listaEvaluacionDesempenoArbolDto = listaEvaluacionDesempenoArbolDto;
    }

    public List<DesarrolloDto> getListaDesarrolloDto() {
        return listaDesarrolloDto;
    }

    public void setListaDesarrolloDto(List<DesarrolloDto> listaDesarrolloDto) {
        this.listaDesarrolloDto = listaDesarrolloDto;
    }

    public DesarrolloDto getDesarrolloDto() {
        return desarrolloDto;
    }

    public void setDesarrolloDto(DesarrolloDto desarrolloDto) {
        this.desarrolloDto = desarrolloDto;
    }

    public Boolean getDeshabilitarBotones() {
        return deshabilitarBotones;
    }

    public void setDeshabilitarBotones(Boolean deshabilitarBotones) {
        this.deshabilitarBotones = deshabilitarBotones;
    }

    public int getCuadranteI() {
        return cuadranteI;
    }

    public void setCuadranteI(int cuadranteI) {
        this.cuadranteI = cuadranteI;
    }

    public int getCuadranteII() {
        return cuadranteII;
    }

    public void setCuadranteII(int cuadranteII) {
        this.cuadranteII = cuadranteII;
    }

    public int getCuadranteIII() {
        return cuadranteIII;
    }

    public void setCuadranteIII(int cuadranteIII) {
        this.cuadranteIII = cuadranteIII;
    }

    public int getCuadranteIV() {
        return cuadranteIV;
    }

    public void setCuadranteIV(int cuadranteIV) {
        this.cuadranteIV = cuadranteIV;
    }

    public List<Cuadrantes> getListCuadrantes() {
        return listCuadrantes;
    }

    public void setListCuadrantes(List<Cuadrantes> listCuadrantes) {
        this.listCuadrantes = listCuadrantes;
    }

    public List<ParametroDto> getListaDesarrolloEstado() {
        return this.recursosManager.obtenerParametrosActivosPorCatalogo(ConstantesGest.CatalogoParametro.DESARROLLO_ESTADOS);
    }

    public void setListaDesarrolloEstado(List<ParametroDto> listaDesarrolloEstado) {
        this.listaDesarrolloEstado = listaDesarrolloEstado;
    }

    public Date getFechaActual() {
       return UtilCore.Fecha.obtenerFechaActualDate();
    }

    public void setFechaActual(Date fechaActual) {
        this.fechaActual = fechaActual;
    }

    public List<GestionTalentoPersonaDto> getListaPersonaDesarrollo() {
        return listaPersonaDesarrollo;
    }

    public void setListaPersonaDesarrollo(List<GestionTalentoPersonaDto> listaPersonaDesarrollo) {
        this.listaPersonaDesarrollo = listaPersonaDesarrollo;
    }

    public List<GestionTalentoPersonaDto> getListaReporte() {
        return listaReporte;
    }

    public void setListaReporte(List<GestionTalentoPersonaDto> listaReporte) {
        this.listaReporte = listaReporte;
    }

    public List<PuestoCriticoDto> getListaReportePuestoCritico() {
        return listaReportePuestoCritico;
    }

    public void setListaReportePuestoCritico(List<PuestoCriticoDto> listaReportePuestoCritico) {
        this.listaReportePuestoCritico = listaReportePuestoCritico;
    }

    public List<DesarrolloDto> getListaReporteDesarrollo() {
        return listaReporteDesarrollo;
    }

    public void setListaReporteDesarrollo(List<DesarrolloDto> listaReporteDesarrollo) {
        this.listaReporteDesarrollo = listaReporteDesarrollo;
    }

    public class Cuadrantes {

        private String descripcion;
        private int cantidad;
        private Double porcentaje;

        public String getDescripcion() {
            return descripcion;
        }

        public void setDescripcion(String descripcion) {
            this.descripcion = descripcion;
        }

        public int getCantidad() {
            return cantidad;
        }

        public void setCantidad(int cantidad) {
            this.cantidad = cantidad;
        }

        public Double getPorcentaje() {
            return porcentaje;
        }

        public void setPorcentaje(Double porcentaje) {
            this.porcentaje = porcentaje;
        }

        
       
    }
}
